package com.sptpc.demo1.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type;
import org.joda.money.Money;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;

@Entity//定义该类将会成为被JPA管理的实体，会映射到指定的数据库表
@Table(name = "t_drink")//指定表名为t_drink

@Data
@NoArgsConstructor
@AllArgsConstructor //创建全参构造函数
@Builder
public class Drink {
    @Id//标志主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)//设置为自增字段
    public Integer id; // 编号

    @Column(name = "name")//指定表中的字段名。如果与数据库字段名相同可省略不写
    @NotBlank
    public String name; // 名称不能为空

    @Column(name = "price")//指定表中的字段名。如果与数据库字段名相同可省略不写
    @Type(type = "org.jadira.usertype.moneyandcurrency.joda.PersistentMoneyAmount",
              parameters = {@org.hibernate.annotations.Parameter(name = "currencyCode", value = "CNY")})//实现金额的转换。
    @NotNull
    public Money price; // 价格不能为空，价格为字符串所以注解为notnull
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
//    public LocalDate addDate; //上架时间  传递参数必须为---形式

    @ManyToOne//一对多
    @JsonIgnoreProperties(value={"hibernateLazyInitializer"})
    public Category category;//分类
}
